package com.symria.system.email;

import java.io.File;

public interface EmailSender {
	void addLogManager(LogManager manager);

    /**
     * 发送带附件的纯文本邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @param attachments 附件
     * @return 是否发送成功
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
	boolean sendTextMail(String to,String subject,String content,File[] attachments) throws IllegalArgumentException;
    /**
     * 发送纯文本邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @return 是否发送成功
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
	boolean sendTextMail(String to,String subject,String content) throws IllegalArgumentException;
    /**
     * 给多个发件人发送纯文本邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @return 任务状况
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
	boolean[] sendTextMail(String[] to,String subject,String content) throws IllegalArgumentException;
    /**
     * 给多个发件人发送带附件的纯文本邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @param attachments 附件
     * @return 任务状况
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
	boolean[] sendTextMail(String[] to,String subject,String content,File[] attachments) throws IllegalArgumentException;

    /**
     * 发送HTML邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @return 是否发送成功
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
    public boolean sendHtmlMail(String to, String subject,String content) throws IllegalArgumentException;
    /**
     * 给多个发件人发送HTML邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @return 任务状况
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
    boolean[] sendHtmlMail(String[] to,String subject,String content) throws IllegalArgumentException;
    /**
     * 发送带附件的HTML邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @param attachments 附件
     * @return 是否发送成功
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
    public boolean sendHtmlMail(String to,String subject,String content,File[] attachments) throws IllegalArgumentException;
    /**
     * 给多个发件人发送带附件的HTML邮件。
     * @param to 收件人
     * @param subject 主题
     * @param content 正文
     * @param attachments 附件
     * @return 任务状况
     * @throws IllegalArgumentException 如果参数to为null或格式不正确
     */
    public boolean[] sendHtmlMail(String[] to,String subject,String content,File[] attachments) throws IllegalArgumentException;
 
}
